package cn.fj.game;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyEvent;

public class Plane extends GameObject {
	int speed=3;   //因为继承父类的速度为0，所以我们这里需要重写一下
	boolean left, up, right, down;  //给飞机定义属性来控件移动
	boolean live=true;

	// 重写一下父类的drawSelf方法，因为飞机每次重新绘制的时候都会发生移动
	public void drawSelf(Graphics g) {
		if(live) {
			g.drawImage(img, (int) x, (int) y, null);
			if(left) {
				x-=speed;
			}
			if(right) {
				x+=speed;
			}
			if(up) {
				y-=speed;
			}
			if(down) {
				y+=speed;
			}
		}else {
//			System.out.println("很不幸你死掉了");
		}
		
	}

	public Plane(Image img, double x, double y) {
		this.img = img;
		this.x = x;
		this.y = y;
		this.speed=3;
		this.width=img.getWidth(null);    //这里的null可以理解为获取飞机图片的初始值
		this.height=img.getHeight(null);
	}//这里就是飞机的矩形区域
	//按下某个键，增加相应的方向
	public void addDirection(KeyEvent e) {
//		System.out.println("成功调用");   //可以测试一下先后顺序的输出就知道了
		switch (e.getKeyCode()) {
		case KeyEvent.VK_LEFT:   //这些数字代表的就是键盘的数字  我们可以通过输出验证一下
			left = true;
			break;
		case KeyEvent.VK_UP:
			up=true;
			break;
		case KeyEvent.VK_RIGHT:
			right=true;
			break;
		case KeyEvent.VK_DOWN:
			down=true;
			break;
		
		}
	}
	
	//按下某个键取消相应的方向
	public void minusDirection(KeyEvent e) {
		switch (e.getKeyCode()) {
		case 37:
			left = false;
			break;
		case 38:
			up=false;
			break;
		case 39:
			right=false;
			break;
		case 40:
			down=false;
			break;
		
		}
	}
	

}
